/*
 *  The <vmm.h> header file defines some functions to manage virtual memory
 */

#ifndef _VMM_H
#define _VMM_H

#include <types.h>

// Page/Directory Write/Read Access
#define VMM_PG_READ                 0
#define VMM_PG_WRITE                2
// Page/Directory User/Superuser Acceess
#define VMM_PG_SUPER                0 
#define VMM_PG_USER                 4



extern void virtual_init(void);
extern void virtual_post_init(void);
extern void remap_video_memory(void);

extern void allocate_page(dword_t virt_address,byte_t access);
extern void release_page(dword_t virt_address);

extern dword_t new_address_space();
extern void destroy_address_space(dword_t page_dir);

#endif /* _VMM_H */
